package com.bg8loo.amateur.service.impl;


import com.bg8loo.amateur.dao.TitleDao;
import com.bg8loo.amateur.pojo.Title;
import com.bg8loo.amateur.service.TitleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;

@Service
public class TitleServiceImpl implements TitleService {

    @Autowired
    TitleDao titleDao;


    //    查询题库数据
    @Override
    public ArrayList<Title> getAllTitle(String type) {
        return titleDao.getAllTitle(type);
    }

    //添加题目方法
    @Override
    public void addTitle(String type,String context, String Ase, String Bse, String Cse, String Dse, String grade) {
        titleDao.addTitle(type ,context, Ase, Bse, Cse, Dse, grade);


    }

    //    查询题库数据通过编号
    @Override
    public Title getTitleByGrade(String type, String grade) {
        return titleDao.getTitleByGrade(type,grade);
    }

    @Override
    public void updataPictureById(String type, String picture, int id) {
        titleDao.updataPictureById("roea",picture,id);
    }

    @Override
    public boolean updataPictureByGrade(String type, String grade, String picture) {
        return titleDao.updataPictureByGrade(type,grade,picture);
    }

    @Override
    public ArrayList<Title> selectRoeaRand10() {

        ArrayList<Title> titles = titleDao.selectRoeaRand10();
        HashSet<String> hashSet = new HashSet<>();

        for (int i=0 ;i < titles.size() ;i++) {
            hashSet = new HashSet<>();
            String ase = titles.get(i).getAse();
            //将a选项放入answer，因为a选项为答案
            titles.get(i).setAnswer(ase);
            //将abcd放入set集合中，用于打乱顺序（利用set的无序特性，存取没有顺序）
            hashSet.add(titles.get(i).getAse());
            hashSet.add(titles.get(i).getBse());
            hashSet.add(titles.get(i).getCse());
            hashSet.add(titles.get(i).getDse());

//            迭代获取，从set中
            Iterator it = hashSet.iterator();
            titles.get(i).setAse(it.next().toString());
            titles.get(i).setBse(it.next().toString());
            titles.get(i).setCse(it.next().toString());
            titles.get(i).setDse(it.next().toString());

        }



        return titles;
    }

    @Override
    public ArrayList<Title> selectRoebRand10() {
        ArrayList<Title> titles = titleDao.selectRoebRand10();
        HashSet<String> hashSet = new HashSet<>();

        for (int i=0 ;i < titles.size() ;i++) {
            hashSet = new HashSet<>();
            String ase = titles.get(i).getAse();
            //将a选项放入answer，因为a选项为答案
            titles.get(i).setAnswer(ase);
            //将abcd放入set集合中，用于打乱顺序（利用set的无序特性，存取没有顺序）
            hashSet.add(titles.get(i).getAse());
            hashSet.add(titles.get(i).getBse());
            hashSet.add(titles.get(i).getCse());
            hashSet.add(titles.get(i).getDse());

//            迭代获取，从set中
            Iterator it = hashSet.iterator();
            titles.get(i).setAse(it.next().toString());
            titles.get(i).setBse(it.next().toString());
            titles.get(i).setCse(it.next().toString());
            titles.get(i).setDse(it.next().toString());

        }
        return titles;
    }

    @Override
    public ArrayList<Title> selectRoeaExam30() {
        ArrayList<Title> titles = titleDao.selectRoeaExam30();
        HashSet<String> hashSet = new HashSet<>();

        for (int i=0 ;i < titles.size() ;i++) {
            hashSet = new HashSet<>();
            String ase = titles.get(i).getAse();
            //将a选项放入answer，因为a选项为答案
            titles.get(i).setAnswer(ase);
            //将abcd放入set集合中，用于打乱顺序（利用set的无序特性，存取没有顺序）
            hashSet.add(titles.get(i).getAse());
            hashSet.add(titles.get(i).getBse());
            hashSet.add(titles.get(i).getCse());
            hashSet.add(titles.get(i).getDse());

//            迭代获取，从set中
            Iterator it = hashSet.iterator();
            titles.get(i).setAse(it.next().toString());
            titles.get(i).setBse(it.next().toString());
            titles.get(i).setCse(it.next().toString());
            titles.get(i).setDse(it.next().toString());
        }
        return titles;
    }

    @Override
    public ArrayList<Title> selectRoebExam50() {
        ArrayList<Title> titles = titleDao.selectRoebExam50();
        HashSet<String> hashSet = new HashSet<>();

        for (int i=0 ;i < titles.size() ;i++) {
            hashSet = new HashSet<>();
            String ase = titles.get(i).getAse();
            //将a选项放入answer，因为a选项为答案
            titles.get(i).setAnswer(ase);
            //将abcd放入set集合中，用于打乱顺序（利用set的无序特性，存取没有顺序）
            hashSet.add(titles.get(i).getAse());
            hashSet.add(titles.get(i).getBse());
            hashSet.add(titles.get(i).getCse());
            hashSet.add(titles.get(i).getDse());

//            迭代获取，从set中
            Iterator it = hashSet.iterator();
            titles.get(i).setAse(it.next().toString());
            titles.get(i).setBse(it.next().toString());
            titles.get(i).setCse(it.next().toString());
            titles.get(i).setDse(it.next().toString());
        }


        return titles;
    }

    @Override
    public ArrayList<Title> selectRoecExam80() {
        ArrayList<Title> titles = titleDao.selectRoecExam80();
        HashSet<String> hashSet = new HashSet<>();

        for (int i=0 ;i < titles.size() ;i++) {
            hashSet = new HashSet<>();
            String ase = titles.get(i).getAse();
            //将a选项放入answer，因为a选项为答案
            titles.get(i).setAnswer(ase);
            //将abcd放入set集合中，用于打乱顺序（利用set的无序特性，存取没有顺序）
            hashSet.add(titles.get(i).getAse());
            hashSet.add(titles.get(i).getBse());
            hashSet.add(titles.get(i).getCse());
            hashSet.add(titles.get(i).getDse());

//            迭代获取，从set中
            Iterator it = hashSet.iterator();
            titles.get(i).setAse(it.next().toString());
            titles.get(i).setBse(it.next().toString());
            titles.get(i).setCse(it.next().toString());
            titles.get(i).setDse(it.next().toString());
        }


        return titles;
    }
}
